Restoration time in networks

ABSTRACT

A restoration path planner minimizes cost while meeting restoration-time constraints of a network by reducing the worst-case number of cross-connections that must be performed in a network in the event of a single element failure. The planner involves optimization that identifies primary and restoration path plans for demands within the network such that the worst-case number of cross-connections at any node within the network is minimal and/or bounded. Embodiments further constrain the cost of the path plan. In one embodiment, restoration time is bounded and cost is relaxed until a solution is found. In another embodiment, the restoration time bound is relaxed to a limit while path plans and their costs are stored. These plans can later be chosen amongst for the desired balance of cost and restoration time. At least one approach to minimization of network cost involves maximizing sharing within restoration path plans.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of the filing date of U.S.provisional application No. 60/459,163, filed on Mar. 31, 2003,incorporated herein by reference in its entirety. The subject matter ofthis application is related to U.S. patent application Ser. No.10/673,383 filed on Sep. 26, 2003, incorporated herein by reference inits entirety (herein “Doshi '03”) and U.S. patent application Ser. No.10/673,056 filed on Sep. 26, 2003, also incorporated herein by referencein its entirety (herein “Alfakih '03”)

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to optical networks and, morespecifically, to cost reduction and restoration time improvement in meshoptical networks.

2. Description of the Related Art

Reliability and cost are two parameters that drive the design of modemday networks. To support high reliability, it is typical to provide pathredundancy for services. To control costs, it is common to attempt tomaximize the utilization of available resources and generate redundantpaths in consideration of multiple-cost criteria.

Generally, reliability is supported by providing both a primary path anda restoration path for each service in the network. In the event of afailure along the primary path for a service, the service is switchedover to the associated restoration path. For optical mesh networks, onechallenge is to support restoration times that are comparable to thoseprovided by SONET/SDH networks with self-healing rings (e.g., 10-100 msrestoration times). To help reduce network restoration time in opticalmesh networks, a number of approaches have been considered, includingimproving restoration signaling and associated algorithms, and improvingthe switching speed of cross-connection infrastructure switchingelements.

SUMMARY OF THE INVENTION

One factor that determines a lower bound on restoration time is themaximum number of cross-connections to be performed at a single networkelement in the event of a failure. Assuming everything else is constant,the larger the number of cross-connections, the longer the restorationtime. Thus, path planning can be performed which minimizes restorationtime by carefully selecting primary and restoration paths for demandswithin a network such that the worst-case number of cross-connections isminimized across all possible single-event failures in the network.

On the other hand, the choice of primary and restoration paths fordemands in a network can also affect the cost of a network where themagnitude of the effect on cost can be different depending on the costmetric that is considered (e.g., administrative weight, bandwidth,distance cost, and/or the degree to which restoration bandwidth betweenmultiple disjoint primary paths can be shared).

Problems in the prior art are addressed in accordance with principles ofthe present invention by a method and apparatus for restoration-pathplanning that minimizes network cost while meeting an upper bound onrestoration time associated with single-event failures in a meshnetwork.

In certain embodiments, network-cost minimization is a function ofmaximizing the utilization of network resources and can include themaximization of sharing of network resources (e.g., restorationbandwidth), while restoration time is bounded by application of anoptimization that reduces the worst-case number of cross-connectionsthat must be performed in a network in the event of a single element(e.g., node or link) failure.

One optimization involves two phases. The first phase of theoptimization involves finding two node-disjoint paths for each servicedemand within a network such that the maximum link bandwidth in thenetwork is minimized and the link bandwidths within the network aresubstantially leveled. The second phase involves identifying the primaryand restoration paths for each service demand within the network suchthat the worst-case number of cross-connections at any node within thenetwork is minimized across all possible single-event failures.

BRIEF DESCRIPTION OF THE DRAWINGS

Other aspects, features, and advantages of the present invention willbecome more fully apparent from the following detailed description, theappended claims, and the accompanying drawings in which:

FIG. 1 illustrates a method for minimizing cost within a network whilemeeting restoration-time requirements via the minimization ofcross-connections within the network according to one embodiment of thepresent invention.

FIG. 2 illustrates another method for minimizing cost within a networkwhile meeting restoration-time requirements via the minimization ofcross-connections within the network according to another embodiment ofthe present invention.

DETAILED DESCRIPTION

Reference herein to “one embodiment” or “an embodiment” means that aparticular feature, structure, or characteristic described in connectionwith the embodiment can be included in at least one embodiment of theinvention. The appearances of the phrase “in one embodiment” in variousplaces in the specification are not necessarily all referring to thesame embodiment, nor are separate or alternative embodiments mutuallyexclusive of other embodiments.

Cost and Restoration Time

Network designers typically are faced with more than one constraint inthe process of network design. Although it may be important to a serviceprovider to find a network path plan that meets the restoration-timegoals of a client, it is also important, from a competitive perspective,for the service provider to do so with minimum cost. To this end, oneembodiment of the present invention combinesrestoration-time-minimization techniques such as those discussed inAlfakih '03 with resource-sharing-maximization techniques such as thosediscussed in Doshi '03. As can be appreciated by one skilled in the art,there are a number of different ways to implement a solution to thisproblem. In the following, two exemplary procedures are discussed.

Cost Relaxation with Fixed Restoration-Time Bound

One embodiment of the present invention is illustrated by the procedureof FIG. 1. As shown in steps 102 and 104, the network topology andtraffic demands, respectively, for the network are input. In step 106,the variable MinXC# is set to the graph-theoretical minimum number ofcross-connections (XCs) for the network topology and traffic demandsthat were input in steps 102 and 104. Also, in step 106, the variable kis initialized to CostDelta, a value (e.g., one) that represents thecost relaxation step size that will be used by the procedure. In step108, set A is set equal to the set of the primary/restoration path plansfor the network that minimize cost (e.g., maximizes sharing per Doshi'03).

Next, in step 110, the variable MinCost is set equal to the maximum costof any of the path plans in set A. The “cost” can be a bandwidth cost,administrative cost, distance cost, or a combination of one or more ofthose or other cost metrics that are important to the network planner,other than restoration time, which is considered separately in thisimplementation.

In step 112, set B is set equal to the set of primary/restoration pathplans for the network whose worst-case number of XCs required at any onenode after considering all possible single-event failures is less thanor equal to XC#max, where XC#max is a bound on the maximum number ofcross-connections that can be tolerated in the network according to somequality-of-service agreement between the service provider and theclient. So, for example, if the service agreement is a bound of 300 ms,and the time for a single cross-connection is 10 ms, XC#max would be 30.XC#max, in actual implementations, may be a function of a number ofdifferent variables including traffic, message bundle sizes, signalingbandwidth, signaling processor speed, and message buffers sizes, aswould be understood to one skilled in the art. XC#max is always greaterthan or equal to MinXC# and is sometimes initialized to be somepredefined offset from MinXC#, for example XC#max=MinXC#+XC#delta.

Next, in the test of step 114, set C is assigned to be the intersectionof sets A and B and this intersection is compared with the null set {0}.If C is not equal to the null set, then this means that each of the pathplans in C has a maximum number of cross-connections that is within theservice agreements of the network operator and also has minimum cost. Inthis case, the method terminates at step 116 with a set C of one or morepath plans that meet the restoration time goals of the service providerat minimal cost.

If the intersection of the two sets in step 114 is null, then, in step118, set A is set equal to the set of all primary/restoration path planswhose cost is less than (MinCost+k). In other words, the cost constraintis relaxed by one unit of CostDelta. In step 120, k is incremented byCostDelta, and, in step 122, the value of k is checked against thevariable CostDeltaLimit, which had been initialized to a value (e.g.,20) that would prevent the procedure from selecting a network plan whosecost was beyond allowable bounds. If the value of k is too large, thenthe procedure completes with an error in step 124. If not, thenprocessing returns to step 114 as described earlier.

In one or more embodiments, step 108 of FIG. 1 can involve use ofalgorithms that use multiple-cost criteria for primary/restoration pathselection (see, e.g., Doshi '03), and step 112 can involve use of amultiple-phase optimization that yields path plans that exhibit aminimum number of cross-connections required at any given node in theevent of a failure (see, e.g., Alfakih '03). As described in Alfakih'03, the first phase involves finding two node-disjoint paths for eachservice demand within a network such that the maximum link bandwidth inthe network is minimized and the link bandwidths within the network areleveled. The second phase involves further constraining a commercialsolver with cost goals and identifying the primary and restoration pathsfor each service demand within the network such that the worst-casenumber of cross-connections at any node within the network is minimizedacross all possible single-event failures within the cost constraints.

Dual Phase Solver

A two-phase embodiment of the present invention is illustrated by theprocedure of FIG. 2. In step 202, the network topology and trafficdemands, respectively, for the network are input. In step 204, aparameter WC#XC (worst-cast number of cross-connects) is set to a valuebetween (1) the quantity MinXC# (minimum cross-connect number), a graphtheoretical minimum number of cross-connections given the networktopology and traffic demands that were input in step 202, and (2) thequantity WC#XC_Limit, a limit on the largest value of the WC#XCparameter that would be considered acceptable based on, e.g., aservice-agreement requirement on network restoration time.

In step 206 (phase D, a commercial solver is run to find twonode-disjoint paths for each service demand within the network such thatthe maximum link bandwidth in the network is minimized and the linkbandwidths within the network are substantially leveled. (Two paths arereferred to as node-disjoint if they have no intermediate (i.e.,transit) nodes in common.) Note that one parameter used by the solver isthe current value of WC#XC. Its role in the solver is to essentiallylimit the solution space from which the solver can select the pathpairs.

In step 208, a test is performed to see if the solver found a feasiblesolution in step 206 (given the current value of WC#XC). If not, then,in step 210, the value of WC#XC is increased by a small increment (i.e.,the constraint is relaxed somewhat), and the new value of WC#XC is thentested in step 212 to determine if it exceeds the limit WC#XC_Limit. Ifit does exceed the limit, then the procedure terminates in step 214.Otherwise, the procedure returns to step 206.

For a suitably large value of WC#XC_Limit, in step 206, a feasiblesolution will eventually be found and the test of step 208 will thenpass. In this case, step 216 (phase II) is performed. Here, a solver isused for path planning. The result of the solver is that one path ofeach node-disjoint path pair that was found in step 206 is assigned tobe a primary path for the pair's associated demand, and the other pathis assigned to be the restoration path for the demand. This pathplanning is performed to find a path plan from within the solutionspace, which path plan has the characteristic that the worst-case numberof cross-connections at any node within the network is minimized acrossall possible single-event failures.

In step 218, a test is performed to see if the worst-case number ofcross-connections of the resulting path plan is less than or equal tothe current value of WX#XC. If the test of step 218 passes, then, instep 220, a cost for the path plan is calculated, and the plan and itscost are saved. Next, in step 222, a constraint is formulated and addedto the primary/restoration path assignment that prevents the identicalpath plan from being obtained the next time step 216 is performed. Thepath planning is then reattempted in step 216 with the additionalconstraint.

Eventually, the test in step 218 will fail when no more path plans canbe found in step 216 that satisfy the constraint that the worst-casenumber of cross-connections is less than or equal to WC#XC. In thiscase, as shown in step 224, all the solution-limiting constraintspreviously added in step 222 are eliminated. In step 226, constraints orconditions are added to the load-balancing problem of step 206 toprevent the previous path-pair solution from being generated. Themodified load-balancing problem is then re-solved in step 206 at thecurrent value of WC#XC.

This process is repeated for increasing values of WC#XC until eventuallythe value exceeds WC#XC_Limit at step 212, in which case the procedureterminates in step 214. At this point, assuming WC#XC_Limit was chosensufficiently large, a number of primary/restoration path plans have beenstored along with their costs. These plans all have an acceptable numberof worst-case cross-connections (i.e., no worse than WC#XC_Limit). Theuser can search these path plans for the minimum-cost plan, or canperform a tradeoff between cost and restoration time within this limitedset of plans.

Note that, alternatively or additionally, step 216 can includeconstraints that drive the solver toward minimum-cost path plans. Theseconstraints can be derived from multiple-cost criteria includingconsideration of sharing of restoration bandwidth between disjoint pathfailures as discussed in Doshi '03.

Path Costs

Generally, there are a number of different metric that can be applied incalculating paths for demands within a network. Various algorithmsincluding shortest path, minimum bandwidth, and fewest hops have beenproposed in the art. As networks become more complex, these costcriteria become more complex as well. For example, the cost of pathadministration and reconfiguration costs of various types (measured in,for example, restoration time) can also be considered along withbandwidth costs and administrative costs. Further, multiple costcriteria, weighted relative to their importance to the path-planningalgorithm, can be considered concurrently. As discussed in Doshi '03,link state information (e.g., bandwidth allocation) and sharinginformation can be used to compute cost-efficient connection routeswithin a network. For path computation, link state can be reduced to anequivalent link cost and then route-computation algorithms can beconsidered that minimize the total path cost—where the path cost isconsidered to be the sum of the link costs. Depending on the possibilityof sharing bandwidth on the restoration path, link costs will bedifferent when restoration bandwidth can be shared compared to the whenit cannot. (Note that when network bandwidth can be shared, sharinginformation can be used to compute more cost-efficient paths through thenetwork. This can be achieved by incorporating sharing information inthe link-cost metric). The two cases are described below.

No-Sharing

Link-cost calculation can be based on the administrative weight (AW) ofthe link, the link capacity (LC), and link's available capacity (AC).Under light and medium link utilization (LU), where LU is less than aspecified utilization threshold (UT) (i.e., LU≦UT), link cost w is setequal to the AW, i.e., w=AW. Hence, under light load conditions, thelink-calculation algorithm will assign links to services according tothe preferences (i.e., administrative weights) assigned by the networkoperator. When the link load is high (LU>UT), however, the link weightsare preferably calculated with the objective of load balancing andrevenue maximization. The generic formula for the link cost w in thishigh link utilization region is based on the inverse of availablecapacity:

$\begin{matrix}{w = \frac{{AW} \cdot {MWC}}{A\; C^{f}}} & (1)\end{matrix}$where MWC is the maximum weight coefficient (i.e., an additional scalingfactor introduced to provide continuity between the two regions of lightand heavy loads) and f is an exponentiation factor (nominally set to0.4) used to modify the available capacity variable AC. Motivation, adetailed model, and additional numerical support for this approach ofweight calculation based on the inverse of available capacity aredescribed in Dziong, Z., “ATM Network Resource Management,” McGraw-Hill,1997, (herein “Dziong '97”) incorporated herein by reference in itsentirety.

Sharing

When sharing information is available, it can be used to compute morecost-efficient (more optimal) primary and restoration paths. Forexample, an algorithm can be designed to compute for each possibleprimary path the lowest cost restoration path by utilizing the sharinginformation. Then from the set of all primary and restoration paths, thepair that requires least amount of additional capacity can be chosen.This path computation algorithm using the sharing information can giveconsiderably better paths then an algorithm using no sharinginformation.

Sharing information can be used in finding the least cost restorationpath for a given primary path. It requires adjustment of the link cost(lowering of it) based on the amount of sharing that is possible on alink along the restoration path of a particular primary path. This canbe achieved by computing the sharing degree of each link in the networkgiven the primary path. (Note that only links that are disjoint to theprimary path need to be considered).

The sharing degree is defined as the maximum number of additional (unitbandwidth) primary services (along the proposed primary path) that canbe added to the link without increasing the restoration bandwidthrequirement of the link. In a sense, this metric provides a networkplanner with an idea of the restoration headroom on a link with respectto the proposed primary path. The higher the sharing degree,intuitively, the better the choice of the primary path for the newservice, since a larger sharing degree for a primary path would allowfuture demands to be added along that path without the need to reserveadditional restoration bandwidth.

Sharing degree can be calculated from an aggregate node-link vectorV_(nla) representation of sharing information and a primary pathnode-link vector V_(pnl) representation according to the followingrelationship:SD=the maximum value m for which max{m·V _(pnl) +V _(nla) }=RB,where RB is the current reservation bandwidth on the link underconsideration.

A less accurate measure of sharing degree can be calculated using acompact representations of the aggregate node-link vector. Note that,here, less accurate means that the sharing degree only provides aconservative indication of which links may be better, but it does notprovide the exact bandwidth available for sharing for a particularprimary path.

Sharing degree can be calculated from the node-aggregate vector V_(na)representation of sharing information and the primary path node vectorV_(pn) representation according to the following relationship:SD=the maximum value m for which max{m·V _(pn) +V _(na) }=RB.

Sharing degree can also be calculated using the binary representation ofnode-link or node vector. In case availability of sharing information interms of the binary node-link vector V_(nlb) for a link, the sharingdegree can be computed by first deriving a binary primary path node-linkvector V_(pnlb) from the primary path node-link vector V_(pnl) (in thesimilar fashion as V_(nlb) can be derived from V_(nla)), then taking anOR of the V_(pnlb) (binary primary path node-link vector) and V_(nlb)(binary node link vector representation of the sharing information onthe link), and then taking the bit AND of the resulting vector. Thiswill result in a sharing degree of one if the sharing is possible andzero otherwise. Note that the sharing degree obtained in this mannerusing the binary node-link vector does not give the exact amount ofsharing that is possible on the link for the primary path. It onlyindicates that if the sharing is possible or not.

Similarly, a more crude sharing degree can be derived by using thebinary node vector information.

In one implementation, the link cost is calculated according to thefollowing equation, which considers the sharing degree (SD) calculatedas discussed earlier:

$w = {\frac{AW}{\left( {1 + {SD}} \right)}.}$

When bandwidth sharing is possible for a link, it would appear thatthere is no immediate bandwidth-related cost for new restoration pathreservation using that link. However, when applying the Markov decisiontheory framework described in Dziong '97, there is a cost. This followsfrom the fact that the cost should be considered during the wholeconnection-holding time, not just at the instant of a new connectionarrival. The Markov process makes it possible to consider theprobabilistic cost of using the link, since, even if sharing is possibleat the moment of connection arrival, in the future, with someprobability, the other shared connections can be terminated and the newconnection will be the sole occupant of the reserved bandwidth on thatlink, and hence incur a cost for reserving additional restorationbandwidth in the network. While exact calculation of such a cost seemsto be very difficult, if possible, one can use this argument to employ anon-zero link cost even when sharing is possible. In one implementation,this fact can be accommodated by calculating link cost according to thefollowing equation:

$\begin{matrix}{w = \frac{AW}{\left( {1 + {b \cdot {SD}}} \right)}} & (2)\end{matrix}$where b is a specified coefficient.

While the embodiments of this invention have been discussed with respectto implementations that pre-compute pathways, they may equally well beapplied to implementations where some or all of the computation oroptimization of alternative routes is computed after the failure isdetected and in some cases may involve fault isolation in thealternative route determination.

While this invention has been described with respect to specific coststypically minimized in path planning algorithms inclusive of costs thatare a function of sharability of network resources, other costs andmultiple cost criteria can be considered, as would be understood to oneskilled in the art.

While this invention has been described with respect to restorationassociated with situations involving single-point failures, theconcepts, and in particular, the link-state description, can be extendedto multiple-point failure situations, as would be understood to oneskilled in the art.

While this invention has been described with reference to illustrativeembodiments, this description should not be construed in a limitingsense. Various modifications of the described embodiments, as well asother embodiments of the invention, which are apparent to personsskilled in the art to which the invention pertains are deemed to liewithin the principle and scope of the invention as expressed in thefollowing claims.

Although the steps in the following method claims, if any, are recitedin a particular sequence with corresponding labeling, unless the claimrecitations otherwise imply a particular sequence for implementing someor all of those steps, those steps are not necessarily intended to belimited to being implemented in that particular sequence.

1. A path-manager-implemented method, comprising: the path managerreceiving one or more demands for service in a mesh network, whichnetwork comprises a plurality of nodes interconnected by a plurality oflinks; and the path manager mapping each of the one or more demands ontoa primary path and a restoration path in the network to generate atleast one path plan for the one or more demands in the network, whereinthe at least one path plan is generated as a function of (i) one or morecost criteria associated with the at least one path plan and (ii) afailure-related cross-connection criterion associated with the path planby: (a) calculating a set of node-disjoint path pairs for the one ormore demands based on the failure-related cross-connection criterion,wherein a node-disjoint path pair is calculated for each demand; (b)identifying primary and restoration paths for each node-disjoint pathpair in the set to generate a path plan for the one or more demands; (c)determining whether the path plan satisfies the failure-relatedcross-connection criterion; (d) saving, when the path plan satisfies thefailure-related cross-connection criterion, the path plan; (e) repeatingsteps (a)-(d) to generate two or more path plans that satisfy thefailure-related cross-connection criterion; and (f) selecting one of thepath plans based on the one or more cost criteria.
 2. The invention ofclaim 1, wherein the one or more cost criteria are a function of atleast one of sharing degree, administrative weight, link utilization,and available capacity.
 3. The invention of claim 1, wherein, when thepath plan satisfies the failure-related cross-connection criterion,steps (b)-(d) are repeated with a constraint that excludes each andevery saved path plan.
 4. The invention of claim 3, wherein steps(b)-(d) are repeated only until the path plan fails the failure-relatedcross-connection criterion.
 5. The invention of claim 1, wherein, whenthe path plan fails the failure-related cross-connection criterion,steps (a)-(d) are repeated with a constraint that excludes each set ofnode-disjoint paths.
 6. The invention of claim 5, wherein, whencalculating a set of node-disjoint path pairs for the one or moredemands per step (a) fails to find a feasible solution, thefailure-related cross-connection criterion is relaxed and steps (a)-(e)are repeated using the relaxed failure-related cross-connectioncriterion.
 7. A path manager for a mesh communications network, themanager comprising one or more computing elements, wherein the manageris adapted to: receive one or more demands for service in the meshnetwork, which network comprises a plurality of nodes interconnected bya plurality of links; and map each of the one or more demands onto aprimary path and a restoration path in the network to generate at leastone path plan for the one or more demands in the network, wherein the atleast one path plan is generated as a function of (i) one or more costcriteria associated with the at least one path plan and (ii) afailure-related cross-connection criterion associated with the path planby: (a) calculating a set of node-disjoint path pairs for the one ormore demands based on the failure-related cross-connection criterion,wherein a node-disjoint path pair is calculated for each demand; (b)identifying primary and restoration paths for each node-disjoint pathpair in the set to generate a path plan for the one or more demands; (c)determining whether the path plan satisfies the failure-relatedcross-connection criterion; (d) saving, when the path plan satisfies thefailure-related cross-connection criterion, the path plan; (e) repeatingsteps (a)-(d) to generate two or more path plans that satisfy thefailure-related cross-connection criterion; and (f) selecting one of thepath plans based on the one or more cost criteria.
 8. The invention ofclaim 7, wherein the one or more cost criteria are a function of atleast one of sharing degree, administrative weight, link utilization,and available capacity.
 9. The invention of claim 7, wherein, when thepath plan satisfies the failure-related cross-connection criterion,steps (b)-(d) are repeated with a constraint that excludes each andevery saved path plan.
 10. The invention of claim 9, wherein steps(b)-(d) are repeated only until the path plan fails the failure-relatedcross-connection criterion.
 11. The invention of claim 7, wherein, whenthe path plan fails the failure-related cross-connection criterion,steps (a)-(d) are repeated with a constraint that excludes each set ofnode-disjoint paths.
 12. The invention of claim 11, wherein, whencalculating a set of node-disjoint path pairs for the one or moredemands per step (a) fails to find a feasible solution, thefailure-related cross-connection criterion is relaxed and steps (a)-(e)are repeated using the relaxed failure-related cross-connectioncriterion.
 13. The invention of claim 7, wherein the failure-relatedcross-connection criterion specifies a maximum number ofcross-connections that are changed in any node in the network followinga failure in the network, wherein a path plan does not satisfy thefailure-related cross-connection criterion if the number offailure-related cross-connections that are changed in any node in thepath plan following a failure in the network exceeds the specifiedmaximum number.
 14. The invention of claim 1, wherein thefailure-related cross-connection criterion specifies a maximum number ofcross-connections that are changed in any node in the network followinga failure in the network, wherein a path plan does not satisfy thefailure-related cross-connection criterion if the number offailure-related cross-connections that are changed in any node in thepath plan following a failure in the network exceeds the specifiedmaximum number.
 15. A path-manager-implemented method, comprising: thepath manager receiving one or more demands for service in a meshnetwork, which network comprises a plurality of nodes interconnected bya plurality of links; and the path manager mapping each of the one ormore demands onto a primary path and a restoration path in the networkto generate at least one path plan for the one or more demands in thenetwork, wherein the at least one path plan is generated as a functionof (a) one or more cost criteria associated with the at least one pathplan and (b) a failure-related cross-connection criterion associatedwith the path plan by: calculating a first set of one or more path plansthat satisfy the one or more cost criteria; calculating a second set ofone or more path plans that satisfy the failure-related cross-connectioncriterion; determining whether the first and second sets have any pathplans in common; and if not, then, until the first and second sets haveat least one path plan in common, relaxing the one or more cost criteriaand recalculating the first set.
 16. The invention of claim 15, whereinthe failure-related cross-connection criterion specifies a maximumnumber of cross-connections that are changed in any node in the networkfollowing a failure in the network, wherein a path plan does not satisfythe failure-related cross-connection criterion if the number offailure-related cross-connections that are changed in any node in thepath plan following a failure in the network exceeds the specifiedmaximum number.
 17. The invention of claim 15, wherein the one or morecost criteria are a function of at least one of sharing degree,administrative weight, link utilization, and available capacity.
 18. Apath manager for a mesh communications network, the manager comprisingone or more computing elements, wherein the manager is adapted to:receive one or more demands for service in the mesh network, whichnetwork comprises a plurality of nodes interconnected by a plurality oflinks; and map each of the one or more demands onto a primary path and arestoration path in the network to generate at least one path plan forthe one or more demands in the network, wherein the at least one pathplan is generated as a function of (a) one or more cost criteriaassociated with the at least one path plan and (b) a failure-relatedcross-connection criterion associated with the path plan by: calculatinga first set of one or more path plans that satisfy the one or more costcriteria; calculating a second set of one or more path plans thatsatisfy the failure-related cross-connection criterion; determiningwhether the first and second sets have any path plans in common; and ifnot, then, until the first and second sets have at least one path planin common, relaxing the one or more cost criteria and recalculating thefirst set.
 19. The invention of claim 18, wherein the failure-relatedcross-connection criterion specifies a maximum number ofcross-connections that are changed in any node in the network followinga failure in the network, wherein a path plan does not satisfy thefailure-related cross-connection criterion if the number offailure-related cross-connections that are changed in any node in thepath plan following a failure in the network exceeds the specifiedmaximum number.
 20. The invention of claim 18, wherein the one or morecost criteria are a function of at least one of sharing degree,administrative weight, link utilization, and available capacity.